package com.atmilan.quartz.model.dto.daigo;

import java.util.List;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import lombok.Data;

/**
 * @author hupeng
 */
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class DaigoProductResDTO {
    /**
     * 错误代码
     * 1001：重复订单号
     * 1002：订单金额不符
     * 1003：没有订单商品信息
     */
    private Integer error;

    /**
     * 错误内容
     */
    private String message;

    /**
     * 分页信息
     */
    private Pager pager;

    /**
     * 商品列表
     */
    @JsonProperty(value = "goods_list")
    private List<Product> product;

    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class Pager {
        /**
         * 商品总数
         */
        private String count;

        /**
         * 每页显示数量
         */
        private Integer size;

        /**
         * 当前页码
         */
        private Integer page;

        /**
         * 总页数
         */
        @JsonProperty(value = "max_page")
        private Integer maxPage;

        /**
         * 下一页
         */
        @JsonProperty(value = "next_page")
        private Integer nextPage;
    }

    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class Product {
        /**
         * 原ERP成本价格
         */
        private String sourceCost;
        
        /**
         * 成本价
         */
        private String cost;
        
        /**
         * 销售活动价格标识
         *
         */
        private Boolean promoteFlag;

        /**
         * ERP成本活动价格标识
         *
         */
        private Boolean erpPromFlag;
        
        /**
         * ID
         */
        @JsonProperty(value = "goods_id")
        private String goodsId;

        /**
         * 商品名称
         */
        @JsonProperty(value = "goods_name")
        private String goodsName;

        /**
         * 品牌ID
         */
        @JsonProperty(value = "brand_id")
        private String brandId;

        /**
         * 供应商id, 2是易时尚
         */
        @JsonProperty(value = "suppliers_name")
        private String suppliersId;

        /**
         * 供应商名称
         */
        private String suppliersName;

        /**
         * 品牌名称
         */
        @JsonProperty(value = "brand_name")
        private String brandName;

        /**
         * 品牌图片
         */
        @JsonProperty(value = "brand_logo")
        private String brandLogo;

        /**
         * 欧洲原价
         */
        @JsonProperty(value = "original_price")
        private String originalPrice;

        /**
         * 销售价格
         */
        @JsonProperty(value = "sale_price")
        private String salePrice;
//        /**
//         * ERP价格
//         */
//        @JsonProperty(value = "erp_price")
//        private String erpPrice;
//        /**
//         * ERP活动价格
//         */
//        @JsonProperty(value = "erp_prom_price")
//        private String erpPromPrice;

        /**
         * 活动名称
         */
        @JsonProperty(value = "promote_name")
        private String promoteName;

        /**
         * 活动价格
         */
        @JsonProperty(value = "promote_price")
        private String promotePrice;

        /**
         * 活动开始时间
         */
        @JsonProperty(value = "promote_start_date")
        private String promoteStartDate;

        /**
         * 活动结束时间
         */
        @JsonProperty(value = "promote_end_date")
        private String promoteEndDate;

        /**
         * 缩略图
         */
        @JsonProperty(value = "goods_img")
        private String goodsImg;

        /**
         * 商品SKU编码
         */
        @JsonProperty(value = "goods_sku")
        private String goodsSku;

        /**
         * 分类ID
         */
        @JsonProperty(value = "cat_id")
        private Integer catId;

        /**
         * 分类名称
         */
        @JsonProperty(value = "cat_name")
        private String catName;

        /**
         * 现货位置（1为国内，2是香港）
         */
        @JsonProperty(value = "stock_area")
        private Integer stockArea;

        /**
         * 商品编码
         */
        @JsonProperty(value = "goods_code")
        private String goodsCode;

        /**
         * 商品材质
         */
        @JsonProperty(value = "goods_caizhi")
        private String goodsCaizhi;

        /**
         * 更新时间(时间戳 秒)
         */
        @JsonProperty(value = "last_update")
        private String lastUpdate;
        
        private String galleryStr;

        /**
         * 商品相册
         */
        @JsonProperty(value = "gallery")
        private List<Gallery> galleryDTO;
        
        /**
         * 分类（男士、女士）
         */
        @JsonProperty(value = "top_cat")
        private String topCat;

        /**
         * 分类（男士、女士）
         */
        @JsonProperty(value = "shipping_fee")
        private Integer shippingFee;
        
        /**
         * 是否可推送天猫
         */
        @JsonProperty(value = "tmall")
        private Integer tmall;
        
        /**
         * 是否可售
         */
        @JsonProperty(value = "on_sale")
        private Integer onSale;

        /**
         * SKU列表
         */
        private List<ProductSku> skus;

        private String season;
    }

    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class ProductSku {
        /**
         * SKU ID
         */
        @JsonProperty(value = "sku_id")
        private String skuId;

        /**
         * 商品ID
         */
        @JsonProperty(value = "goods_id")
        private String goodsId;

        /**
         * 库存数量
         */
        private Integer stock;

        /**
         * 颜色
         */
        private String color;

        /**
         * 尺码
         */
        private String size;

        /**
         * 1是期货， 0是现货
         */
        private Integer qihuo;
    }

    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class Gallery {
        /**
         * 大图
         */
        @JsonProperty(value = "img_original")
        private String imgOriginal;

        /**
         * 小图
         */
        @JsonProperty(value = "thumb_url")
        private String thumbUrl;
    }
}
